package com.wh.wisdomsite.xbox.us.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.wh.wisdomsite.xbox.us.entity.User;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 用户Service
 *
 * @version V1.0
 * @Package: com.wh.wisdomsite.xbox.us.service
 * @author: 丁奕
 * @date: 2018-08-03 16:17
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 **/
public abstract interface IUserService extends IService<User> {

    /**
     * 获取完整信息的User
     * @param id
     * @return
     */
    Map<String, Object> getMapById(Serializable id);

    /**
     * 获取完整信息的User分页列表
     * @param var1
     * @param var2
     * @return
     */
    Page<Map<String, Object>> getMapsPage(Page var1, Wrapper<User> var2);

    /**
     * 根据用户ID先删除所有关联的用户角色
     * @param usId
     * @return
     */
    Integer deleteUserRoleByUserId(Serializable usId);

    /**
     * 验证登陆名称是否已经存在
     * @param loginName
     * @param oldName
     * @return
     */
    boolean loginNameIsExists(String loginName, String oldName);

    /**
     * 验证用户手机是否已存在
     * @param userPhone
     * @param oldPhone
     * @return
     */
    boolean userPhoneIsExists(String userPhone, String oldPhone);

    /**
     * 根据项目ID，查询所有能查询出改项目的用户
     * @param projectId
     * @return
     */
    List<User> selectUserListByProjectId(String projectId);

    /**
     * 根据角色id获取用户,并去掉当前用户
     * @param roleId
     * @param usId
     * @return
     */
    List<User> selectUserByRoleId(String roleId,String usId);
}
